vector = IA64_DISABLED_FPREG_VECTOR;
break;
case 26:
+ if (((isr >> 4L) & 0xfL) == 1) {
+ //regs->eml_unat = 0; FIXME: DO WE NEED THIS??
+ printf("ia64_handle_reflection: handling regNaT fault");
+ vector = IA64_NAT_CONSUMPTION_VECTOR; break;
+ }
printf("*** NaT fault... attempting to handle as privop\n");
printf("isr=%p, ifa=%p,iip=%p,ipsr=%p\n",isr,ifa,regs->cr_iip,psr);
- regs->eml_unat = 0;
- return;
+ //regs->eml_unat = 0; FIXME: DO WE NEED THIS???
+ // certain NaT faults are higher priority than privop faults
vector = priv_emulate(v,regs,isr);
if (vector == IA64_NO_FAULT) {
printf("*** Handled privop masquerading as NaT fault\n");